In modern computer systems, processing functions are often performed by electronic boards. The boards themselves may be housed in a single or multiple chassis. The boards may be placed in slots in the chassis with each slot holding a different board. The boards may be differentiated based upon different criteria. For example, the boards may perform different types of processing (e.g., resource management) or provide different hardware elements (e.g., memories).
The boards may include software images, which are stored in a memory and used by a processor to perform processing on the board. The software images may, for example, include operating system software or application programming. The software images may operate with only certain types and versions of boards.
Over time, the software images on different boards may need to be updated. For example, a new software image for a particular board may operate faster or more efficiently. A newer software image may also provide new features for a board.
A network management station, communicatively coupled to a board, may be used to upload images to the boards. An operator may type in commands to update a software image. The network management station may utilize an interface that allows a user to enter the commands to be sent to the different boards. The interface may be the command line interface (CLI). The CLI itself may be comprised of a plurality of CLI servers. Each server may process commands destined for boards having a particular type and version number.
The boards may use different protocols to communicate with each other. For example, the file transfer protocol (FTP) or trivial file transfer protocol (TFTP) may be used. Another example of a protocol is the dynamic host configuration protocol (DHCP).